import matplotlib.pyplot as plt

# x_values = [1, 2, 3, 4, 5]
# y_values = [1, 4, 9, 16, 25]

# 自动计算数据
x_values = range(1, 1001)
y_values = [x**2 for x in x_values] # [f(value) for value in values] 对列表内所有元素进行f操作

plt.style.use('seaborn')
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 指定默认字体（解决中文无法显示的问题）
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像时负号“-”显示方块的问题

fig, ax = plt.subplots()

# scatter绘制散点图,c:点的颜色(也可传递代表RGB颜色的元组),s:点的大小
# ax.scatter(x_values, y_values, c='red', s=10)
# 颜色映射(colormap): 渐变色,将y_values输入c表示以y坐标大小确定颜色深浅(y_values每个值对应一个点的
#   颜色深浅，所以折线图无法这样输入),cmap输入为定义好的渐变颜色样式
ax.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, s=10)

# 设置图表标题并给坐标轴加上标签
ax.set_title("平方数", fontsize=24)
ax.set_xlabel("值", fontsize=14)
ax.set_ylabel("值的平方", fontsize=14)
# 设置刻度标记的大小,刻度数字大小
ax.tick_params(axis='both', labelsize=14)

# 设置每个坐标轴的取值范围
ax.axis([0, 1100, 0, 1100000]) # 0,1100;0,1100000分别代表x,y轴的最小﹑最大值

# plt.show() # 显示图表
plt.savefig('squares_plot.png', bbox_inches='tight') # 保存图表到文件，bbox_inches='tight'将图表四周的空白区域裁剪掉，tight紧凑型布局
# 若先显示再保存文件，则在显示退出时会将表ax给删除，保存文件就没有了